package com.crm.model.entity.cluePoolManager;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ClueFollowExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ClueFollowExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andClueFollowIdIsNull() {
            addCriterion("clue_follow_id is null");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdIsNotNull() {
            addCriterion("clue_follow_id is not null");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdEqualTo(String value) {
            addCriterion("clue_follow_id =", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdNotEqualTo(String value) {
            addCriterion("clue_follow_id <>", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdGreaterThan(String value) {
            addCriterion("clue_follow_id >", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdGreaterThanOrEqualTo(String value) {
            addCriterion("clue_follow_id >=", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdLessThan(String value) {
            addCriterion("clue_follow_id <", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdLessThanOrEqualTo(String value) {
            addCriterion("clue_follow_id <=", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdLike(String value) {
            addCriterion("clue_follow_id like", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdNotLike(String value) {
            addCriterion("clue_follow_id not like", value, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdIn(List<String> values) {
            addCriterion("clue_follow_id in", values, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdNotIn(List<String> values) {
            addCriterion("clue_follow_id not in", values, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdBetween(String value1, String value2) {
            addCriterion("clue_follow_id between", value1, value2, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andClueFollowIdNotBetween(String value1, String value2) {
            addCriterion("clue_follow_id not between", value1, value2, "clueFollowId");
            return (Criteria) this;
        }

        public Criteria andFollowWayIsNull() {
            addCriterion("follow_way is null");
            return (Criteria) this;
        }

        public Criteria andFollowWayIsNotNull() {
            addCriterion("follow_way is not null");
            return (Criteria) this;
        }

        public Criteria andFollowWayEqualTo(Integer value) {
            addCriterion("follow_way =", value, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayNotEqualTo(Integer value) {
            addCriterion("follow_way <>", value, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayGreaterThan(Integer value) {
            addCriterion("follow_way >", value, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayGreaterThanOrEqualTo(Integer value) {
            addCriterion("follow_way >=", value, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayLessThan(Integer value) {
            addCriterion("follow_way <", value, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayLessThanOrEqualTo(Integer value) {
            addCriterion("follow_way <=", value, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayIn(List<Integer> values) {
            addCriterion("follow_way in", values, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayNotIn(List<Integer> values) {
            addCriterion("follow_way not in", values, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayBetween(Integer value1, Integer value2) {
            addCriterion("follow_way between", value1, value2, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowWayNotBetween(Integer value1, Integer value2) {
            addCriterion("follow_way not between", value1, value2, "followWay");
            return (Criteria) this;
        }

        public Criteria andFollowTmIsNull() {
            addCriterion("follow_tm is null");
            return (Criteria) this;
        }

        public Criteria andFollowTmIsNotNull() {
            addCriterion("follow_tm is not null");
            return (Criteria) this;
        }

        public Criteria andFollowTmEqualTo(Date value) {
            addCriterion("follow_tm =", value, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmNotEqualTo(Date value) {
            addCriterion("follow_tm <>", value, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmGreaterThan(Date value) {
            addCriterion("follow_tm >", value, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmGreaterThanOrEqualTo(Date value) {
            addCriterion("follow_tm >=", value, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmLessThan(Date value) {
            addCriterion("follow_tm <", value, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmLessThanOrEqualTo(Date value) {
            addCriterion("follow_tm <=", value, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmIn(List<Date> values) {
            addCriterion("follow_tm in", values, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmNotIn(List<Date> values) {
            addCriterion("follow_tm not in", values, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmBetween(Date value1, Date value2) {
            addCriterion("follow_tm between", value1, value2, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowTmNotBetween(Date value1, Date value2) {
            addCriterion("follow_tm not between", value1, value2, "followTm");
            return (Criteria) this;
        }

        public Criteria andFollowDetailIsNull() {
            addCriterion("follow_detail is null");
            return (Criteria) this;
        }

        public Criteria andFollowDetailIsNotNull() {
            addCriterion("follow_detail is not null");
            return (Criteria) this;
        }

        public Criteria andFollowDetailEqualTo(String value) {
            addCriterion("follow_detail =", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailNotEqualTo(String value) {
            addCriterion("follow_detail <>", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailGreaterThan(String value) {
            addCriterion("follow_detail >", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailGreaterThanOrEqualTo(String value) {
            addCriterion("follow_detail >=", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailLessThan(String value) {
            addCriterion("follow_detail <", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailLessThanOrEqualTo(String value) {
            addCriterion("follow_detail <=", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailLike(String value) {
            addCriterion("follow_detail like", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailNotLike(String value) {
            addCriterion("follow_detail not like", value, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailIn(List<String> values) {
            addCriterion("follow_detail in", values, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailNotIn(List<String> values) {
            addCriterion("follow_detail not in", values, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailBetween(String value1, String value2) {
            addCriterion("follow_detail between", value1, value2, "followDetail");
            return (Criteria) this;
        }

        public Criteria andFollowDetailNotBetween(String value1, String value2) {
            addCriterion("follow_detail not between", value1, value2, "followDetail");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionIsNull() {
            addCriterion("customer_intention is null");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionIsNotNull() {
            addCriterion("customer_intention is not null");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionEqualTo(String value) {
            addCriterion("customer_intention =", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionNotEqualTo(String value) {
            addCriterion("customer_intention <>", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionGreaterThan(String value) {
            addCriterion("customer_intention >", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionGreaterThanOrEqualTo(String value) {
            addCriterion("customer_intention >=", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionLessThan(String value) {
            addCriterion("customer_intention <", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionLessThanOrEqualTo(String value) {
            addCriterion("customer_intention <=", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionLike(String value) {
            addCriterion("customer_intention like", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionNotLike(String value) {
            addCriterion("customer_intention not like", value, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionIn(List<String> values) {
            addCriterion("customer_intention in", values, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionNotIn(List<String> values) {
            addCriterion("customer_intention not in", values, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionBetween(String value1, String value2) {
            addCriterion("customer_intention between", value1, value2, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerIntentionNotBetween(String value1, String value2) {
            addCriterion("customer_intention not between", value1, value2, "customerIntention");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityIsNull() {
            addCriterion("customer_quality is null");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityIsNotNull() {
            addCriterion("customer_quality is not null");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityEqualTo(Integer value) {
            addCriterion("customer_quality =", value, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityNotEqualTo(Integer value) {
            addCriterion("customer_quality <>", value, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityGreaterThan(Integer value) {
            addCriterion("customer_quality >", value, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityGreaterThanOrEqualTo(Integer value) {
            addCriterion("customer_quality >=", value, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityLessThan(Integer value) {
            addCriterion("customer_quality <", value, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityLessThanOrEqualTo(Integer value) {
            addCriterion("customer_quality <=", value, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityIn(List<Integer> values) {
            addCriterion("customer_quality in", values, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityNotIn(List<Integer> values) {
            addCriterion("customer_quality not in", values, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityBetween(Integer value1, Integer value2) {
            addCriterion("customer_quality between", value1, value2, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerQualityNotBetween(Integer value1, Integer value2) {
            addCriterion("customer_quality not between", value1, value2, "customerQuality");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedIsNull() {
            addCriterion("customer_other_need is null");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedIsNotNull() {
            addCriterion("customer_other_need is not null");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedEqualTo(String value) {
            addCriterion("customer_other_need =", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedNotEqualTo(String value) {
            addCriterion("customer_other_need <>", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedGreaterThan(String value) {
            addCriterion("customer_other_need >", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedGreaterThanOrEqualTo(String value) {
            addCriterion("customer_other_need >=", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedLessThan(String value) {
            addCriterion("customer_other_need <", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedLessThanOrEqualTo(String value) {
            addCriterion("customer_other_need <=", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedLike(String value) {
            addCriterion("customer_other_need like", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedNotLike(String value) {
            addCriterion("customer_other_need not like", value, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedIn(List<String> values) {
            addCriterion("customer_other_need in", values, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedNotIn(List<String> values) {
            addCriterion("customer_other_need not in", values, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedBetween(String value1, String value2) {
            addCriterion("customer_other_need between", value1, value2, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andCustomerOtherNeedNotBetween(String value1, String value2) {
            addCriterion("customer_other_need not between", value1, value2, "customerOtherNeed");
            return (Criteria) this;
        }

        public Criteria andClueScoreIsNull() {
            addCriterion("clue_score is null");
            return (Criteria) this;
        }

        public Criteria andClueScoreIsNotNull() {
            addCriterion("clue_score is not null");
            return (Criteria) this;
        }

        public Criteria andClueScoreEqualTo(Integer value) {
            addCriterion("clue_score =", value, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreNotEqualTo(Integer value) {
            addCriterion("clue_score <>", value, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreGreaterThan(Integer value) {
            addCriterion("clue_score >", value, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreGreaterThanOrEqualTo(Integer value) {
            addCriterion("clue_score >=", value, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreLessThan(Integer value) {
            addCriterion("clue_score <", value, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreLessThanOrEqualTo(Integer value) {
            addCriterion("clue_score <=", value, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreIn(List<Integer> values) {
            addCriterion("clue_score in", values, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreNotIn(List<Integer> values) {
            addCriterion("clue_score not in", values, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreBetween(Integer value1, Integer value2) {
            addCriterion("clue_score between", value1, value2, "clueScore");
            return (Criteria) this;
        }

        public Criteria andClueScoreNotBetween(Integer value1, Integer value2) {
            addCriterion("clue_score not between", value1, value2, "clueScore");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeIsNull() {
            addCriterion("communication_time is null");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeIsNotNull() {
            addCriterion("communication_time is not null");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeEqualTo(Integer value) {
            addCriterion("communication_time =", value, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeNotEqualTo(Integer value) {
            addCriterion("communication_time <>", value, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeGreaterThan(Integer value) {
            addCriterion("communication_time >", value, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("communication_time >=", value, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeLessThan(Integer value) {
            addCriterion("communication_time <", value, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeLessThanOrEqualTo(Integer value) {
            addCriterion("communication_time <=", value, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeIn(List<Integer> values) {
            addCriterion("communication_time in", values, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeNotIn(List<Integer> values) {
            addCriterion("communication_time not in", values, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeBetween(Integer value1, Integer value2) {
            addCriterion("communication_time between", value1, value2, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andCommunicationTimeNotBetween(Integer value1, Integer value2) {
            addCriterion("communication_time not between", value1, value2, "communicationTime");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentIsNull() {
            addCriterion("intention_judgment is null");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentIsNotNull() {
            addCriterion("intention_judgment is not null");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentEqualTo(String value) {
            addCriterion("intention_judgment =", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentNotEqualTo(String value) {
            addCriterion("intention_judgment <>", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentGreaterThan(String value) {
            addCriterion("intention_judgment >", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentGreaterThanOrEqualTo(String value) {
            addCriterion("intention_judgment >=", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentLessThan(String value) {
            addCriterion("intention_judgment <", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentLessThanOrEqualTo(String value) {
            addCriterion("intention_judgment <=", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentLike(String value) {
            addCriterion("intention_judgment like", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentNotLike(String value) {
            addCriterion("intention_judgment not like", value, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentIn(List<String> values) {
            addCriterion("intention_judgment in", values, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentNotIn(List<String> values) {
            addCriterion("intention_judgment not in", values, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentBetween(String value1, String value2) {
            addCriterion("intention_judgment between", value1, value2, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andIntentionJudgmentNotBetween(String value1, String value2) {
            addCriterion("intention_judgment not between", value1, value2, "intentionJudgment");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeIsNull() {
            addCriterion("next_plan_time is null");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeIsNotNull() {
            addCriterion("next_plan_time is not null");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeEqualTo(Date value) {
            addCriterion("next_plan_time =", value, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeNotEqualTo(Date value) {
            addCriterion("next_plan_time <>", value, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeGreaterThan(Date value) {
            addCriterion("next_plan_time >", value, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("next_plan_time >=", value, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeLessThan(Date value) {
            addCriterion("next_plan_time <", value, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeLessThanOrEqualTo(Date value) {
            addCriterion("next_plan_time <=", value, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeIn(List<Date> values) {
            addCriterion("next_plan_time in", values, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeNotIn(List<Date> values) {
            addCriterion("next_plan_time not in", values, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeBetween(Date value1, Date value2) {
            addCriterion("next_plan_time between", value1, value2, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andNextPlanTimeNotBetween(Date value1, Date value2) {
            addCriterion("next_plan_time not between", value1, value2, "nextPlanTime");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeIsNull() {
            addCriterion("follow_purpose is null");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeIsNotNull() {
            addCriterion("follow_purpose is not null");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeEqualTo(String value) {
            addCriterion("follow_purpose =", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeNotEqualTo(String value) {
            addCriterion("follow_purpose <>", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeGreaterThan(String value) {
            addCriterion("follow_purpose >", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeGreaterThanOrEqualTo(String value) {
            addCriterion("follow_purpose >=", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeLessThan(String value) {
            addCriterion("follow_purpose <", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeLessThanOrEqualTo(String value) {
            addCriterion("follow_purpose <=", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeLike(String value) {
            addCriterion("follow_purpose like", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeNotLike(String value) {
            addCriterion("follow_purpose not like", value, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeIn(List<String> values) {
            addCriterion("follow_purpose in", values, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeNotIn(List<String> values) {
            addCriterion("follow_purpose not in", values, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeBetween(String value1, String value2) {
            addCriterion("follow_purpose between", value1, value2, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andFollowPurposeNotBetween(String value1, String value2) {
            addCriterion("follow_purpose not between", value1, value2, "followPurpose");
            return (Criteria) this;
        }

        public Criteria andClueContactIdIsNull() {
            addCriterion("clue_contact_id is null");
            return (Criteria) this;
        }

        public Criteria andClueContactIdIsNotNull() {
            addCriterion("clue_contact_id is not null");
            return (Criteria) this;
        }

        public Criteria andClueContactIdEqualTo(String value) {
            addCriterion("clue_contact_id =", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdNotEqualTo(String value) {
            addCriterion("clue_contact_id <>", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdGreaterThan(String value) {
            addCriterion("clue_contact_id >", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdGreaterThanOrEqualTo(String value) {
            addCriterion("clue_contact_id >=", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdLessThan(String value) {
            addCriterion("clue_contact_id <", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdLessThanOrEqualTo(String value) {
            addCriterion("clue_contact_id <=", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdLike(String value) {
            addCriterion("clue_contact_id like", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdNotLike(String value) {
            addCriterion("clue_contact_id not like", value, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdIn(List<String> values) {
            addCriterion("clue_contact_id in", values, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdNotIn(List<String> values) {
            addCriterion("clue_contact_id not in", values, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdBetween(String value1, String value2) {
            addCriterion("clue_contact_id between", value1, value2, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andClueContactIdNotBetween(String value1, String value2) {
            addCriterion("clue_contact_id not between", value1, value2, "clueContactId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdIsNull() {
            addCriterion("visit_record_id is null");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdIsNotNull() {
            addCriterion("visit_record_id is not null");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdEqualTo(String value) {
            addCriterion("visit_record_id =", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdNotEqualTo(String value) {
            addCriterion("visit_record_id <>", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdGreaterThan(String value) {
            addCriterion("visit_record_id >", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdGreaterThanOrEqualTo(String value) {
            addCriterion("visit_record_id >=", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdLessThan(String value) {
            addCriterion("visit_record_id <", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdLessThanOrEqualTo(String value) {
            addCriterion("visit_record_id <=", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdLike(String value) {
            addCriterion("visit_record_id like", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdNotLike(String value) {
            addCriterion("visit_record_id not like", value, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdIn(List<String> values) {
            addCriterion("visit_record_id in", values, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdNotIn(List<String> values) {
            addCriterion("visit_record_id not in", values, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdBetween(String value1, String value2) {
            addCriterion("visit_record_id between", value1, value2, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andVisitRecordIdNotBetween(String value1, String value2) {
            addCriterion("visit_record_id not between", value1, value2, "visitRecordId");
            return (Criteria) this;
        }

        public Criteria andFollowProductIsNull() {
            addCriterion("follow_product is null");
            return (Criteria) this;
        }

        public Criteria andFollowProductIsNotNull() {
            addCriterion("follow_product is not null");
            return (Criteria) this;
        }

        public Criteria andFollowProductEqualTo(Integer value) {
            addCriterion("follow_product =", value, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductNotEqualTo(Integer value) {
            addCriterion("follow_product <>", value, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductGreaterThan(Integer value) {
            addCriterion("follow_product >", value, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductGreaterThanOrEqualTo(Integer value) {
            addCriterion("follow_product >=", value, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductLessThan(Integer value) {
            addCriterion("follow_product <", value, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductLessThanOrEqualTo(Integer value) {
            addCriterion("follow_product <=", value, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductIn(List<Integer> values) {
            addCriterion("follow_product in", values, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductNotIn(List<Integer> values) {
            addCriterion("follow_product not in", values, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductBetween(Integer value1, Integer value2) {
            addCriterion("follow_product between", value1, value2, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProductNotBetween(Integer value1, Integer value2) {
            addCriterion("follow_product not between", value1, value2, "followProduct");
            return (Criteria) this;
        }

        public Criteria andFollowProcessIsNull() {
            addCriterion("follow_process is null");
            return (Criteria) this;
        }

        public Criteria andFollowProcessIsNotNull() {
            addCriterion("follow_process is not null");
            return (Criteria) this;
        }

        public Criteria andFollowProcessEqualTo(Integer value) {
            addCriterion("follow_process =", value, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessNotEqualTo(Integer value) {
            addCriterion("follow_process <>", value, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessGreaterThan(Integer value) {
            addCriterion("follow_process >", value, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessGreaterThanOrEqualTo(Integer value) {
            addCriterion("follow_process >=", value, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessLessThan(Integer value) {
            addCriterion("follow_process <", value, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessLessThanOrEqualTo(Integer value) {
            addCriterion("follow_process <=", value, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessIn(List<Integer> values) {
            addCriterion("follow_process in", values, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessNotIn(List<Integer> values) {
            addCriterion("follow_process not in", values, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessBetween(Integer value1, Integer value2) {
            addCriterion("follow_process between", value1, value2, "followProcess");
            return (Criteria) this;
        }

        public Criteria andFollowProcessNotBetween(Integer value1, Integer value2) {
            addCriterion("follow_process not between", value1, value2, "followProcess");
            return (Criteria) this;
        }

        public Criteria andEmailIsNull() {
            addCriterion("email is null");
            return (Criteria) this;
        }

        public Criteria andEmailIsNotNull() {
            addCriterion("email is not null");
            return (Criteria) this;
        }

        public Criteria andEmailEqualTo(String value) {
            addCriterion("email =", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotEqualTo(String value) {
            addCriterion("email <>", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThan(String value) {
            addCriterion("email >", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThanOrEqualTo(String value) {
            addCriterion("email >=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThan(String value) {
            addCriterion("email <", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThanOrEqualTo(String value) {
            addCriterion("email <=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLike(String value) {
            addCriterion("email like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotLike(String value) {
            addCriterion("email not like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailIn(List<String> values) {
            addCriterion("email in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotIn(List<String> values) {
            addCriterion("email not in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailBetween(String value1, String value2) {
            addCriterion("email between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotBetween(String value1, String value2) {
            addCriterion("email not between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andWechatIsNull() {
            addCriterion("wechat is null");
            return (Criteria) this;
        }

        public Criteria andWechatIsNotNull() {
            addCriterion("wechat is not null");
            return (Criteria) this;
        }

        public Criteria andWechatEqualTo(String value) {
            addCriterion("wechat =", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatNotEqualTo(String value) {
            addCriterion("wechat <>", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatGreaterThan(String value) {
            addCriterion("wechat >", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatGreaterThanOrEqualTo(String value) {
            addCriterion("wechat >=", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatLessThan(String value) {
            addCriterion("wechat <", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatLessThanOrEqualTo(String value) {
            addCriterion("wechat <=", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatLike(String value) {
            addCriterion("wechat like", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatNotLike(String value) {
            addCriterion("wechat not like", value, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatIn(List<String> values) {
            addCriterion("wechat in", values, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatNotIn(List<String> values) {
            addCriterion("wechat not in", values, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatBetween(String value1, String value2) {
            addCriterion("wechat between", value1, value2, "wechat");
            return (Criteria) this;
        }

        public Criteria andWechatNotBetween(String value1, String value2) {
            addCriterion("wechat not between", value1, value2, "wechat");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdIsNull() {
            addCriterion("min_upload_id is null");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdIsNotNull() {
            addCriterion("min_upload_id is not null");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdEqualTo(String value) {
            addCriterion("min_upload_id =", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdNotEqualTo(String value) {
            addCriterion("min_upload_id <>", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdGreaterThan(String value) {
            addCriterion("min_upload_id >", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdGreaterThanOrEqualTo(String value) {
            addCriterion("min_upload_id >=", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdLessThan(String value) {
            addCriterion("min_upload_id <", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdLessThanOrEqualTo(String value) {
            addCriterion("min_upload_id <=", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdLike(String value) {
            addCriterion("min_upload_id like", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdNotLike(String value) {
            addCriterion("min_upload_id not like", value, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdIn(List<String> values) {
            addCriterion("min_upload_id in", values, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdNotIn(List<String> values) {
            addCriterion("min_upload_id not in", values, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdBetween(String value1, String value2) {
            addCriterion("min_upload_id between", value1, value2, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andMinUploadIdNotBetween(String value1, String value2) {
            addCriterion("min_upload_id not between", value1, value2, "minUploadId");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusIsNull() {
            addCriterion("opportunity_status is null");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusIsNotNull() {
            addCriterion("opportunity_status is not null");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusEqualTo(String value) {
            addCriterion("opportunity_status =", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusNotEqualTo(String value) {
            addCriterion("opportunity_status <>", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusGreaterThan(String value) {
            addCriterion("opportunity_status >", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusGreaterThanOrEqualTo(String value) {
            addCriterion("opportunity_status >=", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusLessThan(String value) {
            addCriterion("opportunity_status <", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusLessThanOrEqualTo(String value) {
            addCriterion("opportunity_status <=", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusLike(String value) {
            addCriterion("opportunity_status like", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusNotLike(String value) {
            addCriterion("opportunity_status not like", value, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusIn(List<String> values) {
            addCriterion("opportunity_status in", values, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusNotIn(List<String> values) {
            addCriterion("opportunity_status not in", values, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusBetween(String value1, String value2) {
            addCriterion("opportunity_status between", value1, value2, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andOpportunityStatusNotBetween(String value1, String value2) {
            addCriterion("opportunity_status not between", value1, value2, "opportunityStatus");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdIsNull() {
            addCriterion("account_upload_id is null");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdIsNotNull() {
            addCriterion("account_upload_id is not null");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdEqualTo(String value) {
            addCriterion("account_upload_id =", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdNotEqualTo(String value) {
            addCriterion("account_upload_id <>", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdGreaterThan(String value) {
            addCriterion("account_upload_id >", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdGreaterThanOrEqualTo(String value) {
            addCriterion("account_upload_id >=", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdLessThan(String value) {
            addCriterion("account_upload_id <", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdLessThanOrEqualTo(String value) {
            addCriterion("account_upload_id <=", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdLike(String value) {
            addCriterion("account_upload_id like", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdNotLike(String value) {
            addCriterion("account_upload_id not like", value, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdIn(List<String> values) {
            addCriterion("account_upload_id in", values, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdNotIn(List<String> values) {
            addCriterion("account_upload_id not in", values, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdBetween(String value1, String value2) {
            addCriterion("account_upload_id between", value1, value2, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAccountUploadIdNotBetween(String value1, String value2) {
            addCriterion("account_upload_id not between", value1, value2, "accountUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdIsNull() {
            addCriterion("attachment_upload_id is null");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdIsNotNull() {
            addCriterion("attachment_upload_id is not null");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdEqualTo(String value) {
            addCriterion("attachment_upload_id =", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdNotEqualTo(String value) {
            addCriterion("attachment_upload_id <>", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdGreaterThan(String value) {
            addCriterion("attachment_upload_id >", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdGreaterThanOrEqualTo(String value) {
            addCriterion("attachment_upload_id >=", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdLessThan(String value) {
            addCriterion("attachment_upload_id <", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdLessThanOrEqualTo(String value) {
            addCriterion("attachment_upload_id <=", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdLike(String value) {
            addCriterion("attachment_upload_id like", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdNotLike(String value) {
            addCriterion("attachment_upload_id not like", value, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdIn(List<String> values) {
            addCriterion("attachment_upload_id in", values, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdNotIn(List<String> values) {
            addCriterion("attachment_upload_id not in", values, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdBetween(String value1, String value2) {
            addCriterion("attachment_upload_id between", value1, value2, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andAttachmentUploadIdNotBetween(String value1, String value2) {
            addCriterion("attachment_upload_id not between", value1, value2, "attachmentUploadId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNull() {
            addCriterion("company_id is null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNotNull() {
            addCriterion("company_id is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdEqualTo(String value) {
            addCriterion("company_id =", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotEqualTo(String value) {
            addCriterion("company_id <>", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThan(String value) {
            addCriterion("company_id >", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThanOrEqualTo(String value) {
            addCriterion("company_id >=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThan(String value) {
            addCriterion("company_id <", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThanOrEqualTo(String value) {
            addCriterion("company_id <=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLike(String value) {
            addCriterion("company_id like", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotLike(String value) {
            addCriterion("company_id not like", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIn(List<String> values) {
            addCriterion("company_id in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotIn(List<String> values) {
            addCriterion("company_id not in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdBetween(String value1, String value2) {
            addCriterion("company_id between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotBetween(String value1, String value2) {
            addCriterion("company_id not between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIsNull() {
            addCriterion("create_people_id is null");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIsNotNull() {
            addCriterion("create_people_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdEqualTo(String value) {
            addCriterion("create_people_id =", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotEqualTo(String value) {
            addCriterion("create_people_id <>", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdGreaterThan(String value) {
            addCriterion("create_people_id >", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdGreaterThanOrEqualTo(String value) {
            addCriterion("create_people_id >=", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLessThan(String value) {
            addCriterion("create_people_id <", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLessThanOrEqualTo(String value) {
            addCriterion("create_people_id <=", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdLike(String value) {
            addCriterion("create_people_id like", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotLike(String value) {
            addCriterion("create_people_id not like", value, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdIn(List<String> values) {
            addCriterion("create_people_id in", values, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotIn(List<String> values) {
            addCriterion("create_people_id not in", values, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdBetween(String value1, String value2) {
            addCriterion("create_people_id between", value1, value2, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreatePeopleIdNotBetween(String value1, String value2) {
            addCriterion("create_people_id not between", value1, value2, "createPeopleId");
            return (Criteria) this;
        }

        public Criteria andCreateTmIsNull() {
            addCriterion("create_tm is null");
            return (Criteria) this;
        }

        public Criteria andCreateTmIsNotNull() {
            addCriterion("create_tm is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTmEqualTo(Date value) {
            addCriterion("create_tm =", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotEqualTo(Date value) {
            addCriterion("create_tm <>", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmGreaterThan(Date value) {
            addCriterion("create_tm >", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmGreaterThanOrEqualTo(Date value) {
            addCriterion("create_tm >=", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmLessThan(Date value) {
            addCriterion("create_tm <", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmLessThanOrEqualTo(Date value) {
            addCriterion("create_tm <=", value, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmIn(List<Date> values) {
            addCriterion("create_tm in", values, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotIn(List<Date> values) {
            addCriterion("create_tm not in", values, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmBetween(Date value1, Date value2) {
            addCriterion("create_tm between", value1, value2, "createTm");
            return (Criteria) this;
        }

        public Criteria andCreateTmNotBetween(Date value1, Date value2) {
            addCriterion("create_tm not between", value1, value2, "createTm");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIsNull() {
            addCriterion("update_people_id is null");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIsNotNull() {
            addCriterion("update_people_id is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdEqualTo(String value) {
            addCriterion("update_people_id =", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotEqualTo(String value) {
            addCriterion("update_people_id <>", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdGreaterThan(String value) {
            addCriterion("update_people_id >", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdGreaterThanOrEqualTo(String value) {
            addCriterion("update_people_id >=", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLessThan(String value) {
            addCriterion("update_people_id <", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLessThanOrEqualTo(String value) {
            addCriterion("update_people_id <=", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdLike(String value) {
            addCriterion("update_people_id like", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotLike(String value) {
            addCriterion("update_people_id not like", value, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdIn(List<String> values) {
            addCriterion("update_people_id in", values, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotIn(List<String> values) {
            addCriterion("update_people_id not in", values, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdBetween(String value1, String value2) {
            addCriterion("update_people_id between", value1, value2, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdatePeopleIdNotBetween(String value1, String value2) {
            addCriterion("update_people_id not between", value1, value2, "updatePeopleId");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIsNull() {
            addCriterion("update_tm is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIsNotNull() {
            addCriterion("update_tm is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTmEqualTo(Date value) {
            addCriterion("update_tm =", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotEqualTo(Date value) {
            addCriterion("update_tm <>", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmGreaterThan(Date value) {
            addCriterion("update_tm >", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmGreaterThanOrEqualTo(Date value) {
            addCriterion("update_tm >=", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmLessThan(Date value) {
            addCriterion("update_tm <", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmLessThanOrEqualTo(Date value) {
            addCriterion("update_tm <=", value, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmIn(List<Date> values) {
            addCriterion("update_tm in", values, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotIn(List<Date> values) {
            addCriterion("update_tm not in", values, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmBetween(Date value1, Date value2) {
            addCriterion("update_tm between", value1, value2, "updateTm");
            return (Criteria) this;
        }

        public Criteria andUpdateTmNotBetween(Date value1, Date value2) {
            addCriterion("update_tm not between", value1, value2, "updateTm");
            return (Criteria) this;
        }

        public Criteria andCustomerIdIsNull() {
            addCriterion("customer_id is null");
            return (Criteria) this;
        }

        public Criteria andCustomerIdIsNotNull() {
            addCriterion("customer_id is not null");
            return (Criteria) this;
        }

        public Criteria andCustomerIdEqualTo(String value) {
            addCriterion("customer_id =", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdNotEqualTo(String value) {
            addCriterion("customer_id <>", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdGreaterThan(String value) {
            addCriterion("customer_id >", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdGreaterThanOrEqualTo(String value) {
            addCriterion("customer_id >=", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdLessThan(String value) {
            addCriterion("customer_id <", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdLessThanOrEqualTo(String value) {
            addCriterion("customer_id <=", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdLike(String value) {
            addCriterion("customer_id like", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdNotLike(String value) {
            addCriterion("customer_id not like", value, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdIn(List<String> values) {
            addCriterion("customer_id in", values, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdNotIn(List<String> values) {
            addCriterion("customer_id not in", values, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdBetween(String value1, String value2) {
            addCriterion("customer_id between", value1, value2, "customerId");
            return (Criteria) this;
        }

        public Criteria andCustomerIdNotBetween(String value1, String value2) {
            addCriterion("customer_id not between", value1, value2, "customerId");
            return (Criteria) this;
        }

        public Criteria andClueIdIsNull() {
            addCriterion("clue_id is null");
            return (Criteria) this;
        }

        public Criteria andClueIdIsNotNull() {
            addCriterion("clue_id is not null");
            return (Criteria) this;
        }

        public Criteria andClueIdEqualTo(String value) {
            addCriterion("clue_id =", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdNotEqualTo(String value) {
            addCriterion("clue_id <>", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdGreaterThan(String value) {
            addCriterion("clue_id >", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdGreaterThanOrEqualTo(String value) {
            addCriterion("clue_id >=", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdLessThan(String value) {
            addCriterion("clue_id <", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdLessThanOrEqualTo(String value) {
            addCriterion("clue_id <=", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdLike(String value) {
            addCriterion("clue_id like", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdNotLike(String value) {
            addCriterion("clue_id not like", value, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdIn(List<String> values) {
            addCriterion("clue_id in", values, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdNotIn(List<String> values) {
            addCriterion("clue_id not in", values, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdBetween(String value1, String value2) {
            addCriterion("clue_id between", value1, value2, "clueId");
            return (Criteria) this;
        }

        public Criteria andClueIdNotBetween(String value1, String value2) {
            addCriterion("clue_id not between", value1, value2, "clueId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdIsNull() {
            addCriterion("clue_pool_id is null");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdIsNotNull() {
            addCriterion("clue_pool_id is not null");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdEqualTo(String value) {
            addCriterion("clue_pool_id =", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdNotEqualTo(String value) {
            addCriterion("clue_pool_id <>", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdGreaterThan(String value) {
            addCriterion("clue_pool_id >", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdGreaterThanOrEqualTo(String value) {
            addCriterion("clue_pool_id >=", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdLessThan(String value) {
            addCriterion("clue_pool_id <", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdLessThanOrEqualTo(String value) {
            addCriterion("clue_pool_id <=", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdLike(String value) {
            addCriterion("clue_pool_id like", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdNotLike(String value) {
            addCriterion("clue_pool_id not like", value, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdIn(List<String> values) {
            addCriterion("clue_pool_id in", values, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdNotIn(List<String> values) {
            addCriterion("clue_pool_id not in", values, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdBetween(String value1, String value2) {
            addCriterion("clue_pool_id between", value1, value2, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andCluePoolIdNotBetween(String value1, String value2) {
            addCriterion("clue_pool_id not between", value1, value2, "cluePoolId");
            return (Criteria) this;
        }

        public Criteria andContactIdIsNull() {
            addCriterion("contact_id is null");
            return (Criteria) this;
        }

        public Criteria andContactIdIsNotNull() {
            addCriterion("contact_id is not null");
            return (Criteria) this;
        }

        public Criteria andContactIdEqualTo(String value) {
            addCriterion("contact_id =", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdNotEqualTo(String value) {
            addCriterion("contact_id <>", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdGreaterThan(String value) {
            addCriterion("contact_id >", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdGreaterThanOrEqualTo(String value) {
            addCriterion("contact_id >=", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdLessThan(String value) {
            addCriterion("contact_id <", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdLessThanOrEqualTo(String value) {
            addCriterion("contact_id <=", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdLike(String value) {
            addCriterion("contact_id like", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdNotLike(String value) {
            addCriterion("contact_id not like", value, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdIn(List<String> values) {
            addCriterion("contact_id in", values, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdNotIn(List<String> values) {
            addCriterion("contact_id not in", values, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdBetween(String value1, String value2) {
            addCriterion("contact_id between", value1, value2, "contactId");
            return (Criteria) this;
        }

        public Criteria andContactIdNotBetween(String value1, String value2) {
            addCriterion("contact_id not between", value1, value2, "contactId");
            return (Criteria) this;
        }

        public Criteria andFollowSourceIsNull() {
            addCriterion("follow_source is null");
            return (Criteria) this;
        }

        public Criteria andFollowSourceIsNotNull() {
            addCriterion("follow_source is not null");
            return (Criteria) this;
        }

        public Criteria andFollowSourceEqualTo(Integer value) {
            addCriterion("follow_source =", value, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceNotEqualTo(Integer value) {
            addCriterion("follow_source <>", value, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceGreaterThan(Integer value) {
            addCriterion("follow_source >", value, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceGreaterThanOrEqualTo(Integer value) {
            addCriterion("follow_source >=", value, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceLessThan(Integer value) {
            addCriterion("follow_source <", value, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceLessThanOrEqualTo(Integer value) {
            addCriterion("follow_source <=", value, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceIn(List<Integer> values) {
            addCriterion("follow_source in", values, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceNotIn(List<Integer> values) {
            addCriterion("follow_source not in", values, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceBetween(Integer value1, Integer value2) {
            addCriterion("follow_source between", value1, value2, "followSource");
            return (Criteria) this;
        }

        public Criteria andFollowSourceNotBetween(Integer value1, Integer value2) {
            addCriterion("follow_source not between", value1, value2, "followSource");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdIsNull() {
            addCriterion("single_product_customer_id is null");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdIsNotNull() {
            addCriterion("single_product_customer_id is not null");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdEqualTo(String value) {
            addCriterion("single_product_customer_id =", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdNotEqualTo(String value) {
            addCriterion("single_product_customer_id <>", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdGreaterThan(String value) {
            addCriterion("single_product_customer_id >", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdGreaterThanOrEqualTo(String value) {
            addCriterion("single_product_customer_id >=", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdLessThan(String value) {
            addCriterion("single_product_customer_id <", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdLessThanOrEqualTo(String value) {
            addCriterion("single_product_customer_id <=", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdLike(String value) {
            addCriterion("single_product_customer_id like", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdNotLike(String value) {
            addCriterion("single_product_customer_id not like", value, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdIn(List<String> values) {
            addCriterion("single_product_customer_id in", values, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdNotIn(List<String> values) {
            addCriterion("single_product_customer_id not in", values, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdBetween(String value1, String value2) {
            addCriterion("single_product_customer_id between", value1, value2, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andSingleProductCustomerIdNotBetween(String value1, String value2) {
            addCriterion("single_product_customer_id not between", value1, value2, "singleProductCustomerId");
            return (Criteria) this;
        }

        public Criteria andDataSourceIsNull() {
            addCriterion("data_source is null");
            return (Criteria) this;
        }

        public Criteria andDataSourceIsNotNull() {
            addCriterion("data_source is not null");
            return (Criteria) this;
        }

        public Criteria andDataSourceEqualTo(Integer value) {
            addCriterion("data_source =", value, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceNotEqualTo(Integer value) {
            addCriterion("data_source <>", value, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceGreaterThan(Integer value) {
            addCriterion("data_source >", value, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceGreaterThanOrEqualTo(Integer value) {
            addCriterion("data_source >=", value, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceLessThan(Integer value) {
            addCriterion("data_source <", value, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceLessThanOrEqualTo(Integer value) {
            addCriterion("data_source <=", value, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceIn(List<Integer> values) {
            addCriterion("data_source in", values, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceNotIn(List<Integer> values) {
            addCriterion("data_source not in", values, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceBetween(Integer value1, Integer value2) {
            addCriterion("data_source between", value1, value2, "dataSource");
            return (Criteria) this;
        }

        public Criteria andDataSourceNotBetween(Integer value1, Integer value2) {
            addCriterion("data_source not between", value1, value2, "dataSource");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameIsNull() {
            addCriterion("contact_person_name is null");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameIsNotNull() {
            addCriterion("contact_person_name is not null");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameEqualTo(String value) {
            addCriterion("contact_person_name =", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameNotEqualTo(String value) {
            addCriterion("contact_person_name <>", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameGreaterThan(String value) {
            addCriterion("contact_person_name >", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameGreaterThanOrEqualTo(String value) {
            addCriterion("contact_person_name >=", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameLessThan(String value) {
            addCriterion("contact_person_name <", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameLessThanOrEqualTo(String value) {
            addCriterion("contact_person_name <=", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameLike(String value) {
            addCriterion("contact_person_name like", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameNotLike(String value) {
            addCriterion("contact_person_name not like", value, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameIn(List<String> values) {
            addCriterion("contact_person_name in", values, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameNotIn(List<String> values) {
            addCriterion("contact_person_name not in", values, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameBetween(String value1, String value2) {
            addCriterion("contact_person_name between", value1, value2, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonNameNotBetween(String value1, String value2) {
            addCriterion("contact_person_name not between", value1, value2, "contactPersonName");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneIsNull() {
            addCriterion("contact_person_phone is null");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneIsNotNull() {
            addCriterion("contact_person_phone is not null");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneEqualTo(String value) {
            addCriterion("contact_person_phone =", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneNotEqualTo(String value) {
            addCriterion("contact_person_phone <>", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneGreaterThan(String value) {
            addCriterion("contact_person_phone >", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneGreaterThanOrEqualTo(String value) {
            addCriterion("contact_person_phone >=", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneLessThan(String value) {
            addCriterion("contact_person_phone <", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneLessThanOrEqualTo(String value) {
            addCriterion("contact_person_phone <=", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneLike(String value) {
            addCriterion("contact_person_phone like", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneNotLike(String value) {
            addCriterion("contact_person_phone not like", value, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneIn(List<String> values) {
            addCriterion("contact_person_phone in", values, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneNotIn(List<String> values) {
            addCriterion("contact_person_phone not in", values, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneBetween(String value1, String value2) {
            addCriterion("contact_person_phone between", value1, value2, "contactPersonPhone");
            return (Criteria) this;
        }

        public Criteria andContactPersonPhoneNotBetween(String value1, String value2) {
            addCriterion("contact_person_phone not between", value1, value2, "contactPersonPhone");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}